package IOStream.CharSet;

/**
 * ClassName:Character002
 * Package:IOStream.Character
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/2/28-21:51
 * @Version:v1.0
 */
public class CharSet002 {
    /**
     * ASCII字符集：编码表
     * ASCII编码规则：前面补0,补齐8位
     * ASCII解码规则：直接转成10进制
     *
     * GB2312字符集
     * BIG5字符集
     *
     * GBK字符集：windows系统默认使用的就是GBK   系统显示：ANSI
     * GBK--汉字
     * 1.一个汉字用两个字节存储
     * 2.高位字节二进制一定以1开头,转成十进制之后是一个负数
     *
     * Unicode字符集：国际标准字符集--万国码
     * UTF-16编码规则：用2~4个字节保存
     * UTF-32编码规则：固定使用4个字节保存
     * UTF-8编码规则：用1~4个字节保存
     *      ASCII：1个字节表示
     *      简体中文：3个字节表示
     *
     * UTF-8是一个字符集吗?
     * 答：不是,UTF-8不是字符集,是Unicode字符集的一种编码方式
     *
     *
     * 为什么会乱码：
     * 1.读取数据时未读取完整个汉字(字节流：一次读取一个字节)
     * 2.编码和解码时的方式不统一
     *
     * 如何不产生乱码
     * 1.不要用字节流读取文本文件
     * 2.编码和解码时使用同一个码表
     *
     * 扩展:字节流读取中文会乱码,但是为什么拷贝不会乱码？
     * 数据不丢失
     * */
}
